"""
1.定义一个类，类重写__iter__和__next__
1.1 __init__定义实例属性
1.2 __iter__里面返回迭代器对象
1.3 __next__判断 某一个条件(10) 满足抛出StopIteration异常 不满足返回下一个数据 +1
2.实例化对象对这个对象循环遍历
"""
# 1-10
class A():
    def __init__(self):
        self.num = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.num == 10:
            raise StopIteration
        self.num+=1
        return self.num

a = A()
for i in a:
    print(i)

# 迭代器：惰性计算，只有当你调用next()方法的时候才会去拿数据
# 不占用内存空间，是个遍历比较大的数据集合